Data is commonly stored in computer-based systems in fixed, rigidly structured data stores. For example, one common type of data store is a “flat” file such as a spreadsheet, plain-text document, or XML document. Another common type of data store is a relational database comprising one or more tables. Other examples of data stores that comprise structured data include, without limitation, files systems, object collections, record collections, arrays, hierarchical trees, linked lists, stacks, and combinations thereof.
Often, the underlying structure of these types of data stores is poorly suited for data analysis. One approach for facilitating a more efficient analysis of data in such data stores is to reorganize that data according to an object model that defines object structures and relationships between the object structures.
To create an object model, data items in underlying data stores, such as table rows or cells, can be mapped to properties of the objects in the model. The semantics, or “meanings,” of the various components of the object model are defined by an ontology that categorizes objects, relationships, and/or properties according to various defined types. For example, an ontology might categorize objects as being of one of the following types: person, entity, or event. The ontology can define different properties for each object type, such as names, dates, locations, documents, media, and so forth. Moreover, the ontology can further define relationships (or links) between objects, such as employee, participant, sibling, and so forth.